ConfirmDialog 目前在實作上用於 API 回傳時失敗作為訊息顯示,主要在提示使用者操作錯誤或系統運作錯誤的情況。
PrimeVue 提供 ConfirmationService 讓 ConfirmDialog 元件可跨頁面的操作。
ConfirmationService 設定及使用方法:
// main.js
import {createApp} from 'vue';
import ConfirmationService from 'primevue/confirmationservice';
const app = createApp(App);
app.use(ConfirmationService);
// App.vue
<ConfirmDialog :pt="{
root: {
class: 'w-80'
}
}"></ConfirmDialog>
// ConfirmView.vue
<script setup>
import { useConfirm } from 'primevue/useconfirm';
const confirm = useConfirm();
const confirm = () => {
confirm.require({
message: '資料已存在(4002)',
header: '錯誤',
icon: 'pi pi-exclamation-triangle',
rejectProps: {
label: '取消',
severity: 'secondary',
outlined: true
},
acceptProps: {
label: '確認',
severity: 'danger'
}
})
};
</script>
<template>
<main class="p-6">
<Button @click="confirm()" label="Add" severity="success"></Button>
</main>
</template>
文件說明:https://primevue.org/confirmdialog/#api.confirmationoptions
整理部分項目如下:
在按下確認或取消的按鈕後,可自行定義觸發事件,以下範例結合 Toast 元件,提示使用者確認或拒絕後的訊息。
import { useConfirm } from 'primevue/useconfirm'
import { useToast } from 'primevue/usetoast'
const confirm = useConfirm()
const toast = useToast()
const confirm1 = () => {
confirm.require({
message: '確定是否刪除',
header: '錯誤',
icon: 'pi pi-exclamation-triangle',
rejectProps: {
label: '取消',
severity: 'secondary',
outlined: true
},
acceptProps: {
label: '刪除',
severity: 'danger'
},
accept: () => {
toast.add({ severity: 'info', summary: 'Confirmed', detail: 'You have accepted', life: 3000 })
},
reject: () => {
toast.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 })
}
})
}
另外也有 onShow、onHide 當 ConfirmDialog 視窗顯示或關閉時,提供觸發函式的方法。
參考連結:https://primevue.org/confirmdialog